#include "List.h"
//
//LT* LTInit()
//{
//	LT* newnode = (LT*)malloc(sizeof(LT));
//	if (newnode == NULL)
//	{
//		perror("malloc");
//		exit(1);
//	}
//	newnode->data = -1;
//	newnode->next = newnode->prev = newnode;
//	return newnode;
//}
//
//LT* LTBuynode(LTDatatype x)
//{
//	LT* newnode = (LT*)malloc(sizeof(LT));
//	if (newnode == NULL)
//	{
//		perror("malloc");
//		exit(1);
//	}
//	newnode->data = x;
//	newnode->next = newnode->prev = NULL;
//}
//
//void LTPushback(LT* phead,LTDatatype x)
//{
//	LT* newnode = LTBuynode(x);
//	newnode->prev = phead->prev;
//	newnode->next = phead;
//
//	phead->prev->next = newnode;
//	phead->prev = newnode;
//}
//
//void LTPrint(LT* phead)
//{
//	LT* pcur = phead->next;
//	while (pcur != phead)
//	{
//		printf("%d->", pcur->data);
//		pcur = pcur->next;
//	}
//}
//
//void LTPushfront(LT* phead, LTDatatype x)
//{
//	LT* newnode = LTBuynode(x);
//	newnode->next = phead->next;
//	newnode->prev = phead;
//
//	phead->next->prev = newnode;
//	phead->next = newnode;
//}
//
//int LTEmpty(LT* phead)
//{
//	return phead == phead->next;
//}
//
//void LTpopback(LT* phead)
//{
//	assert(!LTEmpty(phead));
//	assert(phead);
//	LT* del = phead->prev;
//	del->prev->next = phead;
//	phead->prev = del->prev;
//
//	free(del);
//	del = NULL;
//}
//
//void LTpopfront(LT* phead)
//{
//	assert(!LTEmpty(phead));
//	assert(phead);
//	LT* del = phead->next;
//	del->next->prev = phead;
//	phead->next = del->next;
//
//	free(del);
//	del = NULL;
//}
//LT* LTFind(LT* phead, LTDatatype x)
//{
//	LT* pcur = phead->next;
//	while (pcur != phead)
//	{
//		if (pcur->data == x)
//		{
//			return pcur;
//		}
//		pcur = pcur->next;
//	}
//	return NULL;
//}
//
//void LTInser(LT* pos, LTDatatype x)
//{
//	LT* newnode = LTBuynode(x);
//	newnode->next = pos->next;
//	newnode->prev = pos;
//
//	pos->next->prev = newnode;
//	pos->next = newnode;
//}
//
//void LTErase(LT* pos)
//{
//	pos->prev->next = pos->next;
//	pos->next->prev = pos->prev;
//
//	free(pos);
//	pos = NULL;
//}
//
//void LTDstroy(LT* phead)
//{
//	LT* pcur = phead->next;
//	while (pcur != phead)
//	{
//		LT* next = pcur->next;
//		free(pcur);
//		pcur = next;
//	}
//}
	



//void STInit(ST* ps)
//{
//	assert(ps);
//	ps->data = NULL;
//	ps->capacity = ps->top = 0;
//}
//
//void SLDstroy(ST* ps)
//{
//	if (ps->data != NULL)
//	free(ps->data);
//
//	ps->data = NULL;
//	ps->capacity = ps->top = 0;
//}
//
//void STpush(ST* ps, STDataType x)
//{
//	assert(ps);
//	if (ps->capacity == ps->top)
//	{
//		STDataType newcapacity = ps->capacity == 0 ? sizeof(STDataType): 2 * ps->capacity;
//		ST* ret = (ST*)realloc(ps->data, newcapacity * sizeof(STDataType));
//		if (ret == NULL)
//		{
//			perror("realloc");
//			return;
//		}
//		ps->data = ret;
//		ps->capacity = newcapacity;
//	}
//	ps->data[ps->top] = x;
//	ps->top++;
//}
//
//STEmpty(ST* ps)
//{
//	return ps->top == 0;
//}
//
//STDataType STtop(ST* ps)
//{
//	assert(!STEmpty(ps));
//	return ps->data[ps->top - 1];
//}
//
//void STpop(ST* ps)
//{
//	assert(!STEmpty(ps));
//	ps->top--;
//}
//
//int STSize(ST* ps)
//{
//	return ps->top;
//}